// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Pin Up Казино – Официальный сайт Пин Ап вход на зеркало – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Pin Up Казино – Официальный сайт Пин Ап вход на зеркало

В современном мире азартных игр и онлайн-казино, где каждый день появляется новое игровое учреждение, Pin Up Казино остается одним из самых популярных и надежных игорных операторов. Компания была основана в 2016 году и с тех пор успешно развивается, привлекая игроков из всего мира.

Pin Up Казино – это официальный сайт, который предлагает игрокам широкий спектр азартных игр, включая слоты, карточные игры, рулетку, покер и другие. Всякий раз, когда вы заходитесь на официальный сайт Pin Up Казино, вы можете быть уверены, что играете на официальном ресурсе, который обеспечивает безопасность и честность игры.

Официальный сайт Pin Up Казино – это не только место для игроков, но и для тех, кто ищет развлечения и приключения. Здесь вы можете найти множество игр, которые будут радовать вас и развлекать, а также получать различные бонусы и акции, которые помогут вам начать играть с преимуществом.

Pin Up Казино – это место, где вы можете найти все, что вам нужно для игры и развлечений. Здесь вы можете играть на деньги, а также на бесплатные деньги, если вы хотите попробовать игру перед тем, как начать играть на деньги.

Pin Up Казино – это официальный сайт, который обеспечивает безопасность и честность игры, а также обеспечивает игрокам доступ к широкому спектру азартных игр. Если вы ищете надежного партнера для игр, то Pin Up Казино – это ваш выбор.

Пин Ап Казино – Официальный сайт: Как начать играть

Пин Ап Казино – это популярная онлайн-игровая платформа, которая предлагает игрокам широкий спектр азартных игр, включая слоты, карточные игры, рулетку и другие. В этом разделе мы рассмотрим, как начать играть на официальном сайте Пин Ап Казино.

Для начала, вам нужно зарегистрироваться на официальном сайте Пин Ап Казино. Для этого вам нужно кликнуть на кнопку “Регистрация” и заполнить форму регистрации, указав свои личные данные.

  • Вам нужно указать ваше имя и фамилию;
  • Вам нужно указать ваш email и пароль;
  • Вам нужно выбрать валюту, в которой вы хотите играть;
  • Вам нужно подтвердить, что вы достигли 18-летнего возраста.

После регистрации вы получите доступ к личному кабинету, где можно просматривать историю своих ставок, изменять пароль и получать информацию о своих аккаунте.

  • Вы можете начать играть, выбрав игру из списка доступных;
  • Вы можете выбрать игру, которая вам понравилась, и начать играть;
  • Вы можете изменить ставку, если вам нужно;
  • Вы можете остановить игру, если вам нужно.
  • Помните, что Пин Ап Казино – это официальный сайт, и все игроки, которые регистрируются на этом сайте, получают доступ к официальным играм и услугам.

    Pin Up Казино – Официальный сайт Пин Ап

    Pin Up Казино – это популярный онлайн-казино, которое предлагает игрокам широкий спектр развлекательных игр и высокие ставки. Официальный сайт Pin Up Казино – это место, где вы можете найти все, что вам нужно для игры и развлечений.

    Преимущества Pin Up Казино

    Pin Up Казино предлагает игрокам множество преимуществ, включая:

    Широкий спектр игр, включая слоты, карточные игры, рулетку и другие

    Высокие ставки и бонусы для новых и постоянных игроков

    Безопасность и честность игры, обеспечиваемые лицензией Curacao

    Многоязычный интерфейс, доступный на русском языке

    24/7 поддержка клиентов, доступная по телефону, почте и чату

    Pin Up Казино – это отличный выбор для игроков, которые ищут развлечения и шанс выиграть большие суммы денег. Официальный сайт Pin Up Казино – это место, где вы можете найти все, что вам нужно для игры и развлечений.

    Описание и функции официального сайта Pin Up Казино

    Pin Up Казино – это официальный онлайн-казино, которое предлагает игрокам широкий спектр развлекательных и финансовых возможностей. Сайт Pin Up Казино является одним из самых популярных и надежных онлайн-казино в России и за рубежом.

    Официальный сайт Pin Up Казино предлагает игрокам более 3 000 игр, включая слоты, карточные игры, рулетку, бинго и другие. Игроки могут выбрать игру, которая им понравится, и начать играть с минимальной ставкой 1 рубль.

    Функции официального сайта

    Официальный сайт Pin Up Казино имеет несколько функций, которые делают его удобным и доступным для игроков. Среди них:

    Регулярные акции топ казино и промокоды, которые позволяют игрокам получать дополнительные бонусы и преимущества;

    Многоязычный интерфейс, доступный на русском, английском, немецком, французском и других языках;

    Безопасность и конфиденциальность игроков, обеспечиваемая современными технологиями шифрования и защиты;

    24/7 поддержка клиентов, доступная по телефону, электронной почте и чату;

    Официальный сайт Pin Up Казино – это лучший выбор для игроков, которые ищут развлекательные и финансовые возможности онлайн. Сайт предлагает игрокам безопасный и доступный способ играть и получать выигрыши.

    Как зарегистрироваться и начать играть на официальном сайте Pin Up Казино

    Для начала играть на официальном сайте Pin Up Казино, вам нужно зарегистрироваться. Это простой и быстрый процесс, который займет не более 5 минут. Вам нужно выполнить следующие шаги:

    Шаг 1: Перейдите на официальный сайт Pin Up Казино

    Вам нужно открыть браузер и ввести в адресную строку адрес официального сайта Pin Up Казино. Вам может потребоваться подтверждение, чтобы убедиться, что вы находитесь на официальном сайте.

    Шаг 2: Нажмите на кнопку “Зарегистрироваться”

    На странице входа на сайт вы увидите кнопку “Зарегистрироваться”. Нажмите на нее, чтобы начать процесс регистрации.

    Шаг 3: Введите информацию о себе

    Вам нужно ввести информацию о себе, включая имя, фамилию, дату рождения, адрес электронной почты и телефон. Вам также нужно выбрать пароль и подтвердить его.

    Шаг 4: Подтвердите регистрацию

    После заполнения формы регистрации вам будет отправлено письмо с ссылкой на подтверждение. Нажмите на ссылку, чтобы подтвердить регистрацию.

    Шаг 5: Начните играть

    После подтверждения регистрации вы можете начать играть на официальном сайте Pin Up Казино. Вам доступны различные игры, включая слоты, карточные игры и рулетку. Вы можете выбрать игру, которая вам понравилась, и начать играть.

    Design and Develop by Ovatheme